package evemanutool.utils.file; import java.util.ArrayList; import java.util.Collection; public class ParseTools { public static String join(Collection<?> ss, String delimiter) { String joined = ""; int n = 0; for (Object item : ss) { joined += item; if (++n < ss.size()) joined += delimiter; } return joined; } public static <T extends Parsable<T>> String joinParsables(Collection<T> ss, String delimiter) { String joined = ""; int n = 0; for (Parsable<?> p : ss) { joined += p.toParseString(); if (++n < ss.size()) joined += delimiter; } return joined; } public static ArrayList<Integer> breakInts(String s, String delimiter) { ArrayList<Integer> ans = new ArrayList<>(); for (String ss : s.split(delimiter, -1)) { if (!ss.equals("")) { ans.add(Integer.parseInt(ss)); } } return ans; } @SuppressWarnings("unchecked") public static <T extends Parsable<T>> ArrayList<T> breakParsables(String s, String delimiter, T p) { ArrayList<T> ans = new ArrayList<>(); T obj; for (String ss : s.split(delimiter, -1)) { if (!ss.equals("")) { try { obj = (T) p.getClass().newInstance(); ans.add(obj.fromParseString(ss)); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } } } return ans; } }